Previously, when an incoming call is received at a call center, the call is routed to the first available agent. This is typically done on a first in first out basis. In other words, the agent who has been free the longest time is assigned to service the next incoming call. However, even though this method is fair, it is also inefficient.